Machine-readable data is generally stored digitally, as a series of logic “ones” and “zeros.” For example, such data may be stored using optical, magnetic and/or electronic storage devices which may include, for example, solid-state memory devices, magnetic tape drives and optical or magnetic disk drives and arrays.
Often, it is desired to store a collection of data for later retrieval in case the original version is changed, lost or damaged. For example, a back-up copy of the data may be placed on storage media, such as a magnetic tape or floppy disk. In order for the data to be understood upon retrieval, it is generally necessary to know the format in which the data is arranged. Otherwise, the data will appear to be a random series of ones and zeros without meaning. Thus, standardized formats, such as “CPIO” (CoPy In/Out) and “TAR” (Tape ARchive) may be used for archiving data. These schemes have a drawback in that data access functionality is limited. For example, they generally require that the entire stored data structure be reconstructed. However, under certain circumstances, it may be desired to reconstruct less than the entire data structure.
Another conventional technique for archiving data is to store the data in the same format in which the software application that was used to generate the data stores and uses the data. This approach, however, has a drawback in that such application-specific data formats tend to change over time. Thus, older data formats may not be supported by newer versions of the application software.
A conventional technique for reconstructing data is to append a software routine to the beginning of the original data that reconstructs the entire original data when run over the data. For example, a simple “uncompress” program is often placed at the beginning of a piece of compressed email that is able to decode the compressed format of the email data that follows. This technique has a drawback in that it also generally requires that the entire data structure be reconstructed.
Accordingly, it would be desirable to provide a technique for the storage of machine-readable data that overcomes drawbacks associated with conventional storage and reconstruction techniques. It is to these ends that the present invention is directed.